import java.util.*;

/**
 * @author LKQ
 * @date 2022/5/28 9:32
 * @description 统计核心的数目
 */
public class Solution2 {
    public static void main(String[] args) {
        Solution2 solution2 = new Solution2();
        solution2.scoreOfParentheses("(()(()))");
    }
    public int scoreOfParentheses(String S) {
        int ans = 0, bal = 0;
        for (int i = 0; i < S.length(); ++i) {
            if (S.charAt(i) == '(') {
                // 深度加1
                bal++;
            } else {
                // 遇到右括号，封闭，深度-1
                bal--;
                // 如果恰好前一个是（，匹配，那么贡献了 1 << bal的分值
                if (S.charAt(i-1) == '(') {
                    ans += 1 << bal;
                }
            }
        }

        return ans;
    }
}
